'''
给定一个包含大写字母和小写字母的字符串，找到通过这些字母构造成的最长的回文串。
在构造过程中，请注意区分大小写。比如 "Aa" 不能当做一个回文字符串
统计重复数字数字，若果有剩下的数字就+1，也就是原来整除2 有=1的就+1
'''
class Solution:
    def longestPalindrome(self, s: str) -> int:
        res = 0
        for letter in set(s):
            count = s.count(letter)
            if count % 2 == 0:
                res += count
            elif count % 2 != 0 and count > 2:
                res += count-1
        if len(s) > res:
            res += 1
        return res
'''
核心就是用set去重然后用count方法统计出现的次数
'''
class Solution:
    def longestPalindrome(self, s: str) -> int:
        res = 0
        for i in set(s):
            count = s.count(i)
            if count % 2 == 0:
                res += count
            elif count % 2 and count > 1:
                res += count -1
        if res < len(s):
            res += 1
        return res
